[1, 2, 3, 6, 8, 9, 10]
//
['1~3', "6", "8~9"]
// 给定一个升序整型数组[0,1,2,4,5,7,13,15,16],找出其中连续出现的数字区间，输出为["0->2","4->5","7","13","15->16"]
function summaryRanges(arr) {
  //TODO
}


// function simplyStr(arr) {
//     let start = arr[0]
//     let end = arr[0]
//     let result = []
//     let temp = arr[0]
//     for (let i = 1; i < arr.length; i++) {
//         if ((end + 1) == arr[i]) {
//             end = arr[i]
//             if (start == end) {
//                 temp = `${start}`
//             } else {
//                 temp = `${start}~${end}`
//             }
//         } else {
//             result.push(temp)
//             temp = arr[i]
//             start = arr[i]
//             end = arr[i]
//         }
//     }
//     result.push(temp)

//     return result
// }

function simplyStr(arr) {
  let result = [];
  let temp = arr[0]; // start
  arr.forEach((res, index) => {
    if (res + 1 != arr[index + 1]) { // 后面不连续了
      if (temp != res) {
        result.push(`${temp}~${res}`)
      } else {
        result.push(`${res}`)
      }
      temp = arr[index + 1]  // 第一个不连续的
    }
  })
  return result
}

console.log(simplyStr([1, 2, 3, 6, 8, 9, 10]))


// 随机生成一个长度为 10 的整数类型的数组，
// 例如 [2, 10, 3, 4, 5, 11, 10, 11, 20,21]，
// 将其排列成一个新数组，要求新数组形式如下，
// 例如 [[2, 3, 4, 5], [10, 11], [20]]。


function simplyStr2(arr) {
  let result = [];
  let tempArr = [];
  arr = [...new Set(arr.sort((a, b) => a - b))];
  arr.forEach((res, index) => {
    tempArr.push(res)
    if (res + 1 !== arr[index + 1]) { // +1保证最后一步一定会执行
      result.push(tempArr)
      tempArr = []
    }
  })
  return result
}

simplyStr2([2, 10, 3, 4, 5, 11, 10, 11, 20, 21])
















